﻿
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DotNetFramework.CAP.Core.Ioc
{
    public interface IServiceProvider
    {
        //ILifetimeScope Scope { get; set; }

        IServiceScope CreateScope();

        T GetRequiredService<T>();

        T GetService<T>();

        IEnumerable<object> GetServices(Type serviceType);

        IEnumerable<object> GetServices<T>();

        object GetService(Type serviceType);

        //IContainer Container { get; set; }

        IServiceCollection ServiceCollection { get; set; }
    }
}
